{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling and Simulation in Python\n",
    "\n",
    "Chapter 7\n",
    "\n",
    "Copyright 2017 Allen Downey\n",
    "\n",
    "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Configure Jupyter so figures appear in the notebook\n",
    "%matplotlib inline\n",
    "\n",
    "# Configure Jupyter to display the assigned value after an assignment\n",
    "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n",
    "\n",
    "# import functions from the modsim.py module\n",
    "from modsim import *\n",
    "\n",
    "from pandas import read_html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Code from the previous chapter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "filename = 'data/World_population_estimates.html'\n",
    "tables = read_html(filename, header=0, index_col=0, decimal='M')\n",
    "table2 = tables[2]\n",
    "table2.columns = ['census', 'prb', 'un', 'maddison', \n",
    "                  'hyde', 'tanton', 'biraben', 'mj', \n",
    "                  'thomlinson', 'durand', 'clark']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    2.525149\n",
       "1951    2.572851\n",
       "1952    2.619292\n",
       "1953    2.665865\n",
       "1954    2.713172\n",
       "Name: un, dtype: float64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "un = table2.un / 1e9\n",
    "un.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    2.557629\n",
       "1951    2.594940\n",
       "1952    2.636772\n",
       "1953    2.682053\n",
       "1954    2.730228\n",
       "Name: census, dtype: float64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census = table2.census / 1e9\n",
    "census.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(census, un, timeseries, title):\n",
    "    \"\"\"Plot the estimates and the model.\n",
    "    \n",
    "    census: TimeSeries of population estimates\n",
    "    un: TimeSeries of population estimates\n",
    "    timeseries: TimeSeries of simulation results\n",
    "    title: string\n",
    "    \"\"\"\n",
    "    plot(census, ':', label='US Census')\n",
    "    plot(un, '--', label='UN DESA')\n",
    "    plot(timeseries, color='gray', label='model')\n",
    "    \n",
    "    decorate(xlabel='Year', \n",
    "             ylabel='World population (billion)',\n",
    "             title=title)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def run_simulation(system, update_func):\n",
    "    \"\"\"Simulate the system using any update function.\n",
    "    \n",
    "    system: System object\n",
    "    update_func: function that computes the population next year\n",
    "    \n",
    "    returns: TimeSeries\n",
    "    \"\"\"\n",
    "    results = TimeSeries()\n",
    "    results[system.t_0] = system.p_0\n",
    "    \n",
    "    for t in linrange(system.t_0, system.t_end):\n",
    "        results[t+1] = update_func(results[t], t, system)\n",
    "        \n",
    "    return results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Quadratic growth"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the implementation of the quadratic growth model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def update_func_quad(pop, t, system):\n",
    "    \"\"\"Compute the population next year with a quadratic model.\n",
    "    \n",
    "    pop: current population\n",
    "    t: current year\n",
    "    system: system object containing parameters of the model\n",
    "    \n",
    "    returns: population next year\n",
    "    \"\"\"\n",
    "    net_growth = system.alpha * pop + system.beta * pop**2\n",
    "    return pop + net_growth"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's a `System` object with the parameters `alpha` and `beta`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>t_0</th>\n",
       "      <td>1950.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_end</th>\n",
       "      <td>2016.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>p_0</th>\n",
       "      <td>2.557629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>alpha</th>\n",
       "      <td>0.025000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>beta</th>\n",
       "      <td>-0.001800</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "t_0      1950.000000\n",
       "t_end    2016.000000\n",
       "p_0         2.557629\n",
       "alpha       0.025000\n",
       "beta       -0.001800\n",
       "dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_0 = get_first_label(census)\n",
    "t_end = get_last_label(census)\n",
    "p_0 = census[t_0]\n",
    "\n",
    "system = System(t_0=t_0, \n",
    "                t_end=t_end,\n",
    "                p_0=p_0,\n",
    "                alpha=0.025,\n",
    "                beta=-0.0018)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And here are the results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure to file figs/chap07-fig01.pdf\n"
     ]
    },
    {
     "data": {
      "image/png": "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CfDRRx/RtGnTq50rhBCiljh16hR33HEHuP/Ol1ZbEpQToGnTpkRFRXk7FiGEEJXvR903MkhCCCFEjSQJSgghRI0kCUoIIUSNJAlKCCFEjSQJSgghRI0kCUoIIcQ1qeql8iRBCSGEqJDCwkK+/vpr/vrXv6J12b08K09tmQclhBCiBtBa8/XXX5OdnY3VasXHp7y9Oq+PJCghhBBXlZOTw/Lly9mzZw8ALVq0YNKkSURGRlbZMyVBCSGEuCLDMNixYwcrVqygoKAAHx8fRowYQb9+/bBaq7aXSPqgqplSir179/6ofPLkyXz++ecl7xcvXszkyZOJjo6mb9++3H///SX/crmSdevWcc899xAbG0u/fv2466672LRpU6V/BiFE/XDhwgX+85//8NVXX1FQUEC7du2YOXMm/fv3r/LkBFKDqpE2bdrE888/z+zZs4mOjqaoqIj58+dz9913s3LlSho1avSjaz777DNeeeUV/vKXvzBkyBAAvvrqKx544AHeeecd+vTpU90fQwhRS7lcLpKTk1mzZg3FxcX4222MGTOaXn36YbFYqi0OqUHVQDt27KB169b07t0bq9WKv78/Dz74IBMmTOD8+fM/Oj8/P5+//e1v/OUvf2HUqFH4+vri6+vL1KlTmTFjBocPHwbA6XQyZ84cRo4cSWxsLA8//HDJ/ZKTk5kwYQIvvfQSsbGxDBkyhNdee63kGf/73/8YNWoUffv25Sc/+Qlr164tua5s8hsxYgSrVq0q9zohRM105swZ3n33XVauXElxcTHtglxMNHbS7EhCSXLKyC7ktYXb2b7vTJXGUmcT1E2PfMVNj3x1Sdmf523kpke+YtOeUyVlyzcc4aZHvuL1/24vKUvPzOemR77i7ueWX3L9b/6ZwE2PfMWBYxlVGvuwYcPYt28f06dP54MPPmDPnj04nU6ee+452rdv/6Pzt23bRlFREUOHDv3RsQcffJCpU6cC8MEHH7Bo0SLmz59PYmIijRo14re//W3JuQcOHMDHx4f169fz17/+lTfeeIODBw9y/vx5nn76ad58801SUlKYNm0azz///FXnQFzrdUKI6udwOFizZg1z587lxIkThISEMLpRHgMKdxMcHELD/pNKzs3MLWRVylHeXbynSn+f62yCqs06dOjAl19+SadOnViwYAG33HILAwcO5M0337zs/wznz58nNDT0qsM9Fy5cyK9+9StatmyJv78/jz32GCkpKRw5cgQAi8XCzJkz8fHxYdCgQURERJCamoqvry92u53PPvuMXbt2ccstt7BixYqrVvWv9TohRPU6duwYc+fOZe3atbhcLvr06cOsWbPoNeFn+LfsQov7/s5pe4uS81s1bcDMn/Tg8bv6VOnvc53tg1r8yuQflT1zX/8flY2La824uNaXlDUODbjs9a/+dth1x+Xr64vD4fhRudPpxM/Pr+R9q1at+OMf/wiYCWjlypW8+OKLhIWFMW3atEuujYiIICMjg+Li4h8lqezsbPz8/PD19SUtLY0nn3ySZ555puS43W7nxIkT2O12goODL4nBx8cHl8tFcHAw77//PnPnzmX69On4+/tz9913M2PGjHI/a3nXSZISwvuKioqIj48vGUzVKKwho7q1ovOICeYJbXvh37oHL364mQ27TvLKw0PocEMYAGP7t67y+OpsgqqpmjZtSlpaGt27dy8pczgcpKWllewWfPvttzNmzBjuueceABo1asS0adPYtWvXZWdtR0dH4+/vT2JiIqNGjbrk2Msvv0xqairvv/8+kZGRPPPMMwwePLjk+L59+2jdujXbtm27YsyZmZkl/VfFxcV8++23PPTQQ/Tp0webzUZxcXHJuYZhkJmZedXrZNCGEN514MABlixZQmZmJhaLhT5tm9Lx5HqsG9ZR2Kkbfs3N7gSr1UrTRkH4+9o5eS63JEFVB2niq2YTJkzg9ddf5+DBgwBkZGTw0ksvERERQY8ePQC48cYbmTNnDqtWraKoqIiioiKSk5NJTExk5MiRP7qnr68vjz76KM888wzx8fE4HA7y8vKYP38+X375JbNmzQJgypQpvPHGG5w8eRKn08lbb73FHXfcQUFBQbkxnz9/nvvuu49Nmzbh4+NDkyZNsFgshIaG0rJlS4qKili6dClOp5P333+f3Nzcq14nhPCOvLw8vvjiCz766CMyMzNp0jiMyeE5dEpdgbUol4B20WzYn8X3R34YkHXb6I7M/cNIhkRX747mUoOqZrNmzcJmszFjxgzS09Px8/Ojf//+vPfeeyXNc3fddRf+/v7Mnj2bxx9/HMMwaNeuHc888wyDBg267H1vu+02QkJCmDt3Lk888QSGYdClSxfmzZtH3759AXjggQdwOBzccccdZGRk0LFjR+bNm0eDBg3K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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "results = run_simulation(system, update_func_quad)\n",
    "plot_results(census, un, results, 'Quadratic model')\n",
    "savefig('figs/chap07-fig01.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Exercise:**  Can you find values for the parameters that make the model fit better?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Equilibrium\n",
    "\n",
    "To understand the quadratic model better, let's plot net growth as a function of population."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "pop_array = linspace(0, 15, 100)\n",
    "net_growth_array = system.alpha * pop_array + system.beta * pop_array**2\n",
    "None"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what it looks like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure to file figs/chap07-fig02.pdf\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set_style('whitegrid')\n",
    "\n",
    "plot(pop_array, net_growth_array)\n",
    "decorate(xlabel='Population (billions)',\n",
    "         ylabel='Net growth (billions)')\n",
    "\n",
    "sns.set_style('white')\n",
    "\n",
    "savefig('figs/chap07-fig02.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what it looks like.  Remember that the x axis is population now, not time."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It looks like the growth rate passes through 0 when the population is a little less than 14 billion.\n",
    "\n",
    "In the book we found that the net growth is 0 when the population is $-\\alpha/\\beta$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13.88888888888889"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "-system.alpha / system.beta"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is the equilibrium the population tends toward."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`sns` is a library called Seaborn which provides functions that control the appearance of plots.  In this case I want a grid to make it easier to estimate the population where the growth rate crosses through 0."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Dysfunctions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When people first learn about functions, there are a few things they often find confusing.  In this section I present and explain some common problems with functions.\n",
    "\n",
    "As an example, suppose you want a function that takes a `System` object, with variables `alpha` and `beta`, as a parameter and computes the carrying capacity, `-alpha/beta`.  Here's a good solution:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13.88888888888889\n"
     ]
    }
   ],
   "source": [
    "def carrying_capacity(system):\n",
    "    K = -system.alpha / system.beta\n",
    "    return K\n",
    "    \n",
    "sys1 = System(alpha=0.025, beta=-0.0018)\n",
    "pop = carrying_capacity(sys1)\n",
    "print(pop)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's see all the ways that can go wrong.\n",
    "\n",
    "**Dysfunction #1:** Not using parameters.  In the following version, the function doesn't take any parameters; when `sys1` appears inside the function, it refers to the object we created outside the function.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13.88888888888889\n"
     ]
    }
   ],
   "source": [
    "def carrying_capacity():\n",
    "    K = -sys1.alpha / sys1.beta\n",
    "    return K\n",
    "    \n",
    "sys1 = System(alpha=0.025, beta=-0.0018)\n",
    "pop = carrying_capacity()\n",
    "print(pop)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This version actually works, but it is not as versatile as it could be.  If there are several `System` objects, this function can only work with one of them, and only if it is named `system`.\n",
    "\n",
    "**Dysfunction #2:** Clobbering the parameters.  When people first learn about parameters, they often write functions like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13.88888888888889\n"
     ]
    }
   ],
   "source": [
    "def carrying_capacity(system):\n",
    "    system = System(alpha=0.025, beta=-0.0018)\n",
    "    K = -system.alpha / system.beta\n",
    "    return K\n",
    "    \n",
    "sys1 = System(alpha=0.025, beta=-0.0018)\n",
    "pop = carrying_capacity(sys1)\n",
    "print(pop)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this example, we have a `System` object named `sys1` that gets passed as an argument to `carrying_capacity`.  But when the function runs, it ignores the argument and immediately replaces it with a new `System` object.  As a result, this function always returns the same value, no matter what argument is passed.\n",
    "\n",
    "When you write a function, you generally don't know what the values of the parameters will be.  Your job is to write a function that works for any valid values.  If you assign your own values to the parameters, you defeat the whole purpose of functions.\n",
    "\n",
    "\n",
    "**Dysfunction #3:** No return value.  Here's a version that computes the value of `K` but doesn't return it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "None\n"
     ]
    }
   ],
   "source": [
    "def carrying_capacity(system):\n",
    "    K = -system.alpha / system.beta\n",
    "    \n",
    "sys1 = System(alpha=0.025, beta=-0.0018)\n",
    "pop = carrying_capacity(sys1)\n",
    "print(pop)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A function that doesn't have a return statement always returns a special value called `None`, so in this example the value of `pop` is `None`.  If you are debugging a program and find that the value of a variable is `None` when it shouldn't be, a function without a return statement is a likely cause.\n",
    "\n",
    "**Dysfunction #4:** Ignoring the return value.  Finally, here's a version where the function is correct, but the way it's used is not."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13.88888888888889"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def carrying_capacity(system):\n",
    "    K = -system.alpha / system.beta\n",
    "    return K\n",
    "    \n",
    "sys2 = System(alpha=0.025, beta=-0.0018)\n",
    "carrying_capacity(sys2)\n",
    "\n",
    "# print(K)     This line won't work because K only exists inside the function."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this example, `carrying_capacity` runs and returns `K`, but the return value is dropped.\n",
    "\n",
    "When you call a function that returns a value, you should do something with the result.  Often you assign it to a variable, as in the previous examples, but you can also use it as part of an expression.\n",
    "\n",
    "For example, you could eliminate the temporary variable `pop` like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13.88888888888889\n"
     ]
    }
   ],
   "source": [
    "print(carrying_capacity(sys1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or if you had more than one system, you could compute the total carrying capacity like this:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "27.77777777777778"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total = carrying_capacity(sys1) + carrying_capacity(sys2)\n",
    "total"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercises\n",
    "\n",
    "**Exercise:** In the book, I present a different way to parameterize the quadratic model:\n",
    "\n",
    "$ \\Delta p = r p (1 - p / K) $\n",
    "\n",
    "where $r=\\alpha$ and $K=-\\alpha/\\beta$.  Write a version of `update_func` that implements this version of the model.  Test it by computing the values of `r` and `K` that correspond to `alpha=0.025, beta=-0.0018`, and confirm that you get the same results. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.025, 13.88888888888889)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "system = System(t_0=t_0, \n",
    "                t_end=t_end,\n",
    "                p_0=p_0,\n",
    "                alpha=0.025,\n",
    "                beta=-0.0018)\n",
    "\n",
    "system.r = system.alpha\n",
    "system.K = -system.alpha/system.beta\n",
    "\n",
    "system.r, system.K"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def update_func_quad2(pop, t, system):\n",
    "    \"\"\"Compute the population next year.\n",
    "    \n",
    "    pop: current population\n",
    "    t: current year\n",
    "    system: system object containing parameters of the model\n",
    "    \n",
    "    returns: population next year\n",
    "    \"\"\"\n",
    "    net_growth = system.r * pop * (1 - pop / system.K)\n",
    "    return pop + net_growth"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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oUePHvj7+9O0aVOGDRtm+sulKDt27GDIkCE0b96cZs2aMXDgQKKjox/5exBCPBlu3rzJ4sWLWbVqFTk5OdSoUYORI0cSFBRU7OEEcgVVIkVHRzNlyhTmzJmDv78/eXl5LFiwgMGDB7Np0ybKly9/xz7Lly/n888/56OPPqJVq1YArFq1ipdeeonvvvvujlGChRCiKEajkb1797J161b0ej02Wg0dO3agcZNmqFSqx1aHXEGVQEeOHMHb25vAwEDUajU2NjaMGDGCsLAwUlJS7tj+1q1bfPrpp3z00Ue0b98ea2trrK2t6dOnD8OHD+f8+fNAwbwr8+bNo127djRv3pwxY8aYjrd3717CwsKYPn06zZs3p1WrVsycOdN0jt9++4327dvTtGlTnn76abZv327a75/h17ZtWzZv3nzP/YQQJVNSUhLff/89mzZtQq/XU8PeSLhylErx20zhlJqRy8xlhzl8KqlYaymzAdXtzVV0e3NVoWUfRuyh25uriI69alq2cXc83d5cxaxfD5uWJafdotubqxg8eWOh/V/7chvd3lzFmcTUYq29devWnDp1ikGDBvHjjz8SGxuLwWBg8uTJ1KxZ847tDx06RF5eHqGhoXesGzFiBH369AHgxx9/ZPXq1SxYsICoqCjKly/P66+/btr2zJkzWFlZsXPnTj755BNmz57N2bNnSUlJYcKECcydO5d9+/bRr18/pkyZct8+EP92PyHE45efn8/WrVuZP38+ly5dwtHRkQ7lswnJPYaDgyPlgrqbtk3LymXzvgt8vya2WH+fy2xAlWa1atXi999/p27duixdupTevXvTokUL5s6de9cfhpSUFJydne/b3HPZsmWMGjUKLy8vbGxseOutt9i3bx/x8fEAqFQqRo4ciZWVFS1btsTd3Z2EhASsra3RarUsX76cmJgYevfuzR9//HHfS/1/u58Q4vFKTExk/vz5bN++HaPRSJMmTXjllVdoHPYfbLzqU2Xof7mmrWLavpqHEyOf9uPtgU2K9fe5zD6DWvN5jzuWTRwadMeyzsHedA72LrTM1dn2rvt/9Xrrh67L2tqa/Pz8O5YbDAZ0Op3pdbVq1XjvvfeAggDatGkT06ZNw8XFhX79+hXa193dndTUVPR6/R0hlZGRgU6nw9ramsuXLzN+/HgmTpxoWq/Varl06RJarRYHB4dCNVhZ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OTnato6Y5/PPPycuLo7w8HCSkpK01w3YL88PP/zAxIkTCQsLY/To0fz9738HoLm5meXLlxMZGUl0dDQbNmxo87ivv/6a0aNHExoayqxZszh//rzds9xOnmv+9re/MXfu3DZtjnCttZvqoGw2m0pNTVXh4eEqPDxca09KSlIzZsxQ586dUxcuXFAvvPCCWrt2rbZ93Lhx6vvvv//dYz733HPqzTffVFevXlUZGRnKbDar8vLyu55FqfblOXv2rIqIiFDbt29XNptN7d+/XwUFBalTp07ZNU97z82vbdmyRY0dO1ZdvnzZrlnam6eoqEhFRESokpISZbPZ1GeffaYiIyOV1WrtkHl27typzGazOnjwoGppaVFbtmxRcXFxqqmpyW55qqqqlNlsVt98842yWq0qPz9fDRkyRO3du1etXr1aJSYmqrq6OlVRUaHi4+PVv/71L6WUUj///LMKDQ1V2dnZqqmpSf35z39W06ZN045rr3PT3jxKKXXlyhW1atUqNWjQIDVnzpw2x7XntXa7OmyBevfdd1VCQoLauHGj9iJraGhQgwYNUsXFxdp+eXl5Kjo6WtlsNtXY2KgCAwNVdXX1b45XVlamTCaTqq+v19oWL1583TfQO609eTZs2KBeeumlNscpKipSly9ftmue9mT5tZMnT6rQ0FBVVFSklOqY52bXrl0qLCxMlZSUKKvVqjZv3qyGDx+urFZrh8zzyiuvqDfffLPNccaMGaP27NljtzzZ2dlq+fLlbdrmzZun3n33XTV06FC1b98+rT01NVU999xzSiml1qxZoxYtWqRta2hoUCaTSR0/ftyu56a9eZRSKjExUc2fP1+9/vrrbQqUva+129Vhb/FNnTqV7du3ExQUpLXZbDYA3NzctDYnJydqa2u5dOkSRUVF6PV6li9fTnR0NAkJCezZsweAY8eO4e3t3eaxfn5+lJSUOGyewsJCfHx8ePXVV4mKimLChAmcO3cOo9Fo1zztyfJrq1atYsqUKQQEBAAd89wMGzaMAQMG8OyzzxIUFMTq1atJTk7GycmpQ+ax2Wy4urq2OY5er+fEiRN2yxMREcGKFSu03+vq6sjJyWHw4MHU1NTQv39/bVu/fv0oLS0F4OjRo/j7+2vbXF1d8fb2prS01K7npr15ANasWcO6devo0aNHm2Pa+1q7XR22QPXq1es3be7u7gwdOpR33nmHuro6Lly4wPr164HWGdHr6+uJiIhg3rx57Nu3j5deeomFCxdSXFxMfX39b2bSdXV1pampyWHzXLx4kW3btjF+/Hj279/P7NmzefnllykvL7drnvZkuaa0tJSMjAxmzZqltXXEc3P16lX69etHamoqeXl5LFmyhHnz5lFTU9Mh88THx5OamsqPP/5IS0sLqamplJWVaa8re+YBuHz5MnPmzCEkJASTyQTQpk+/7k9DQ8Nvim3nzp1pbGx0iCxwa3ng988p2P+1c7s6bIG6nnfeeQeDwcDYsWOZNm0ao0aNAsDT05Nhw4axadMmgoODMRgMxMfHEx0dTXp6Om5ubly9erXNsRobG9v85WEPN8rTqVMnnnjiCWJjY7V9Bg8ezN69ex0yz42yXJOWlkZcXFybvwQdMQvcOE9KSgpeXl6EhITQqVMnEhMT8fHxYdeuXR0yz7hx45g9ezaLFi1ixIgRlJaW8vjjj+Pp6Wn3PMePH2fKlCn06NGDdevW4e7uDtCmT7/uz++9QTc1NeHu7m73LHDreW7EEfLcjg6xYOGtqK6u5o033sBoNAKwb98+/P39cXV15bvvvuPixYskJCRo+7e0tODi4oK/vz9VVVU0NTVpf3GUlZW1+VhtDzfK4+fnR2FhYZv9r426csQ8N8pyTXp6OsuWLWvzOEfMAjfOc/r06d8svubs7Iyzs3OHzFNdXc3IkSOZMWMG0HqdjRw5kgULFmA0Gu2WJzs7m7lz5zJ16lQWLVqETqfDxcUFLy8vysrKtE8Wx48f1/rTv39/jh8/rh2jsbGR06dP4+/vj1LKruemPXluxFGvtZt1332CWrVqFe+99x4Wi4WKigpWr16trcRrs9n4y1/+QkFBAVarlS+//JLDhw8zduxY/Pz8CAgIIDk5mebmZg4cOEB6ejrPPPOMw+aZMGEChw8f5osvvsBms/H1119TUlJCXFycQ+a5URZoHeZcUVFBWFhYm8c5Yha4cZ7Y2FjS0tLIz8/HZrOxY8cOfv75Z0aMGNEh82RmZjJz5kxqampobGwkOTmZnj17EhwcbLc85eXlvPjiiyxYsIDFixej0+m0bePHj2f9+vXU1tZSWVnJp59+yvjx4wF45plnSE9P5+DBgzQ3N7NmzRoCAwPp16+fXc9Ne/PciKNeazfN3qM0bteBAwfaDJUtLy9XM2bMUGazWT355JPqk08+abP/5s2bVVxcnAoJCVEJCQnqwIED2raqqio1c+ZMFRYWpuLi4tTOnTvvWY5rbjVPRkaGSkhIUGazWY0bN07t3btX22bvPLeaJT8/XwUFBf3useydRalbz7Nx40YVFxenwsLC1JQpU1ROTo62raPlsdls6u2331YxMTEqIiJCzZ8/X9XU1Gjb7ZHnr3/9qxo4cKAKDQ1t8/P222+rpqYm9ac//UnFxMSoqKgotXbt2jajRXft2qXi4+NVaGiomjFjhvbVDHtlud0816xbt+43w8wd4VprL1lRVwghhEO6727xCSGEuD9IgRJCCOGQpEAJIYRwSFKghBBCOCQpUEIIIRySFCghhBAOSQqUEHfJq6++SnR0NHV1db/Z9uGHH2I2m6msrLRDz4ToGKRACXGXLFu2DKvVytq1a9u0V1RU8NFHH7Fw4UJ8fX3t1DshHJ8UKCHuEi8vLxYtWsS2bdvIz8/X2leuXElgYCDTpk2zY++EcHwyk4QQd5FSiueff57m5mbS0tJIT09n4cKF7NixQ5uwMy0tjQ0bNnD27Fn8/f1ZuHAhw4cPB8BisfDee+/x1VdfUV1dTdeuXRk3bhxLly5Fr9ezZMkSbY2piooK3n//faKiouwZWYg7x64TLQnxACgpKVEmk0lt27ZNjR49WqWkpGjb9uzZoyIiItTOnTvViRMn1ObNm1VwcLDKz89XSimVkpKiYmNjVVZWlqqoqFD//Oc/VUBAgPr222+VUq2row4aNEjt2LFDFRYWakuwC3E/kE9QQtwDq1evZtOmTfj5+bF9+3YMBgPQurrtyJEjmT17trbvH//4R5qamkhOTmb37t14eHi0+VT09NNPM2HCBF588UWWLFlCcXExX3311T3PJMTddt+tByWEI3r55Zf55JNPmDt3rlacoHVJ7sLCQj788EOtraWlRbv9N2rUKDIzM3nrrbc4ceIEJSUlnDp1Slv3C+CRRx65d0GEuIekQAlxD1xbLO7/L79tsVh47bXXtP85XXOtiCUnJ7N161YmTpzImDFjWLp0KfPnz//dYwtxv5ECJYQd+fn5UVVV1Wb13fXr1+Pi4kJSUhJbt25l2bJlTJgwAWhdmryqqgq5My8eBDLMXAg7SkpKYsuWLaSmplJeXs7WrVtZv3699v2oLl26sGfPHk6ePMmRI0d45ZVXuHLlCs3NzXbuuRB3n3yCEsKOnn76aerq6ti4cSMrVqzAx8eHN954gzFjxgDw1ltvsWLFCp599lm6d+/OqFGjmDhxIoWFhXbuuRB3n4ziE0II4ZDkFp8QQgiHJAVKCCGEQ5ICJYQQwiFJgRJCCOGQpEAJIYRwSFKghBBCOCQpUEIIIRySFCghhBAO6X8BuYfl69nVJn4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "results = run_simulation(system, update_func_quad2)\n",
    "plot_results(census, un, results, 'Quadratic model')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
